package com.zbkj.crmeb.front.response;

import java.math.BigDecimal;
import java.util.List;

import lombok.Data;

import com.zbkj.crmeb.front.request.OrderInfoRequest;
import com.zbkj.crmeb.front.request.PayeeInfoRequest;
import com.zbkj.crmeb.front.request.PayerInfoRequest;

/**
 * @author stivepeim
 * @title: OrderPayResponse
 * @projectName crmeb
 * @description: 支付订单 Response
 * @date 2020/7/1418:06
 */
@Data
public class LianlianPayResponse {

    /** 请求结果代码。 */
    private String ret_code;

    /** 请求结果描述 */
    private String ret_msg;

    /** ACCP系统分配给平台商户的唯一编号。 */
    private String oid_partner;

    /** 商户用户唯一编号。用户在商户系统中的唯一编号，要求该编号在商户系统能唯一标识用户。 */
    private String user_id;

    /** 订单总金额，单位为元，精确到小数点后两位。 */
    private BigDecimal total_amount;

    /** 商户系统唯一交易流水号。 */
    private String txn_seqno;

    /** ACCP系统交易单号。*/
    private String accp_txno;

    /** 支付授权令牌，有效期30分钟。当交易需要二次验证的时候，需要通过token调用调用交易二次短信验证接口*/
    private String token;

    /**
     * 网关地址。网银支付方式适用，返回跳转网关地址，用户跳转到网关完成后续支付操作。跳转方式：商户前端form表单POST提交。
     * 扫码支付返回此地址后，按链接生成二维码，让用户扫码完成支付。
     */
    private String gateway_url;

    /**
     * 支付参数集合。返回外部渠道的标准支付提交参数，微信/支付宝/云闪付可参考官方文档。
     */
    private String payload;

    /**
     * 交易类型。
     * 用户充值：USER_TOPUP
     * 商户充值：MCH_TOPUP
     * 普通消费：GENERAL_CONSUME
     * 担保消费：SECURED_CONSUME
     * 内部代发：INNER_FUND_EXCHANGE
     * 定向内部代发：INNER_DIRECT_EXCHANGE
     */
    private String txn_type;

    /**
     * 账务日期，ACCP系统交易账务日期，交易成功时返回，格式为yyyyMMdd。
     */
    private String accounting_date;

    /**
     * 支付完成时间。格式：yyyyMMddHHmmss。
     */
    private String finish_time;

    /**
     * 渠道交易单号。
     */
    private String chnl_txno;

    /**
     * 支付交易状态。
     * TRADE_SUCCESS:交易成功
     * 支付交易最终状态以此为准，商户按此进行后续业务逻辑处理。
     */
    private String txn_status;

    /**
     * 银行编码。
     */
    private String bankcode;

    /**
     * 绑卡协议号
     */
    private String linked_agrtno;

    /**
     * 渠道流水号。如微信支付单号。
     */
    private String pay_chnl_txno;

    /**
     * 渠道商家订单号。如微信商家订单号。
     */
    private String sub_chnl_no;

    /**
     * 渠道扩展字段。json格式。需要特配异步通知返回格式。
     */
    private String channel_data;

    /**
     * 商户订单信息orderInfo
     */
    private OrderInfoRequest orderInfo;

    /**
     * 付款方信息（组合支付场景返回付款方信息数组）payerInfo
     */
    private List<PayerInfoRequest> payerInfo;

    /**
     * 收款方信息（交易分账场景返回收款方信息数组）payeeInfo
     */
    private List<PayeeInfoRequest> payeeInfo;

}
